﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ImapactTenis.Relatorios;
using ImapactTenis.Produtos;
using ImpactTenis.AcessoADados.Gerentes;
using ImpactTenis.RegrasDeNegocios.Auxiliares;

namespace ImapactTenis
{
    public class Gerente : Usuario
    {
        public IList<RelatorioControleDeEstoque> GerarRelatorioControleEstoque()
        {
            var estoque = new GerenteDados().BuscaRelatorioEstoque();
            List<RelatorioControleDeEstoque> rel = new List<RelatorioControleDeEstoque>();

            foreach (var item in estoque)
            {
                rel.Add(new RelatorioControleDeEstoque()
                {
                    IdProduto = Conversor.PegaPropriedade(item, "IdProduto").ToString(),
                    NomeProduto = Conversor.PegaPropriedade(item, "NomeProduto").ToString(),
                    QuantidadeNoEstoque = Conversor.PegaPropriedade(item, "QuantidadeNoEstoque").ToString(),
                    Preco = Conversor.PegaPropriedade(item, "Preco").ToString(),

                });
            }
            return rel;
        }

        public List<RelatorioControleDiario> GerarRelatorioControleDiario(DateTime data)
        {
            var vendas = new GerenteDados().BuscaRelatorioVendas(data);
            List<RelatorioControleDiario> rel = new List<RelatorioControleDiario>();

            foreach (var item in vendas)
            {
                rel.Add(new RelatorioControleDiario()
                {
                    FormaPagamento = Conversor.PegaPropriedade(item, "FormaPagamento").ToString(),
                    IdProduto = Conversor.PegaPropriedade(item, "IdProduto").ToString(),
                    Troco = Conversor.PegaPropriedade(item, "Troco").ToString(),
                    ValorProduto = Conversor.PegaPropriedade(item, "ValorProduto").ToString(),
                    ValorRecebido = Conversor.PegaPropriedade(item, "ValorRecebido").ToString(),
                });
            }
            return rel;
        }

        public bool CadastrarUsuario(int funcional, string senha, string nome, int idTipoUsuário)
        {
            return new GerenteDados().CadastrarUsuario(funcional, senha, nome, idTipoUsuário);
        }

        public bool AlterarUsuario(int funcional, string senha, string nome)
        {
            return new GerenteDados().AlterarUsuario(funcional, senha, nome);
        }

        

    }
}
